#pragma once
#include "pde_export.h"
#include <vector>
#include <memory>
#include <string>

namespace  pde
{

	class pde_export Lut
	{
	public:
		static std::shared_ptr<Lut> New();
		Lut();
		~Lut();


		std::string to_bson();
		bool from_bson(const std::string& bson_str);

		bool to_file(const std::string& fn);
		bool from_file(const std::string& fn);


	private:
		SetGetMacro(std::vector<int>, hu);
		SetGetMacro(std::vector<double>, rho);
		SetGetMacro(std::vector<double>, x0);
		SetGetMacro(std::vector<double>, wel);

	};
}